Embodiments relate to retrieving data from a database, and in particular, to methods and systems utilizing intelligent unmasking on an in-memory database.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Certain software applications allow a user to interact with an underlying database to retrieve stored information. Some such applications may provide the user with the ability to map to multiple data elements within the database utilizing a mask.
For example, Enterprise Resource Planning (ERP) software available from SAP AG allows a user to store data regarding cost elements. In an ERP customizing table comprising cost elements, a customer can configure ‘+’ in a column in order to map to one or more cost elements. For example, ‘00008+++++’ can map to all of the cost elements starting with ‘00008’ utilizing the ‘+’ mask symbol within a string of characters. Such a masking function can impart substantial flexibility to a user seeking to retrieve various related data from the underlying database.
Conventional database architectures such as disk-based databases, may typically utilize an engine located in an overlying application layer, to retrieve information (such as data objects) from the underlying database. Such an application-level engine may access underlying database objects one-by-one, using loops.
Recently, however, a trend has emerged to utilize in-memory database architectures. Such in-memory database architectures employ a powerful processing engine located in the underlying database layer.
The programming model of such an in-memory database architecture, may differ significantly from those of conventional (e.g., disk-based) databases. Rather than handling objects one-by-one via loops, an in-memory database may handle data objects instead utilizing a batch approach.
While such batch handling may be useful to increase speed, it may offer certain challenges. Specifically, in-memory database approaches pushing application logic from the application layer down into the underlying database layer (e.g. to interact with masked tables), may result in delays and reduced performance.
Accordingly, there is a need for unmasking techniques for use in conjunction with in-memory database systems.